package com.zjk.wrench.design.framework.tree;

/**
 * 策略处理器
 * @param <T> 参数
 * @param <D> 上下文
 * @param <R> 返回值
 */
public interface StrategyHandler <T, D, R>{

    StrategyHandler DEFAULT  = (T ,D) -> null;

    /**
     * 处理
     * @param requestParameters 请求参数
     * @param dynamicContext 上下文
     * @return 返回值
     * @throws Exception 异常
     */
    R apply(T requestParameters, D dynamicContext) throws Exception;
}
